Menu - Skript

PSPad od verze 4.3.3 podporuje skriptovßnφ (u₧ivatelskΘ rozÜi°ovßnφ programu pomocφ skript∙) pomocφ MS Windows Scripting host (WSH). Znamenß to, ₧e pokud chcete tuto funkci PSPadu pou₧φvat, musφ b²t WSH povoleno v operaΦnφm systΘmu.
WSH nepodporuje pouze VBScript a JavaScript (jsou souΦßstφ WSH), ale je mo₧nΘ doinstalovat podporu pro mnoho dalÜφch skriptovacφch jazyk∙. Ke sta₧enφ jsou nap°. na tΘto internetovΘ strßnce: Windows Scripting Languages


Skripty jsou organizovßny v podadresß°φch adresß°e Script podle jednotliv²ch jazyk∙. Neuklßdejte do techto podadresß°∙ jinΘ soubory ne₧ skripty v odpovφdajφcφm jazyku !!!
Jinak bude dochßzet k chyb∞ p°i kompilaci skript∙.

Je mo₧nΘ napsat knihovny funkcφ - skripty mohou pou₧φvat funkce vzßjemn∞.

globßlnφ funkce

addMenuItem caption, submenu, procedure [, klßvesovß zkratka]: string
vytvo°φ polo₧ku v menu Skript. Pokud nechcete vytvß°et podmenu, nechejte odpovφdajφcφ parametr prßzdn². Tato funkce je pou₧itelnß pouze v procedu°e INIT a pracuje pouze ve fßzi inicializace skriptu. VeÜkerΘ dalÜφ volßnφ funkce je ignorovßno. Klßvesovß zkratka je nepovinnß

echo
(text: string)
informaΦnφ okno s textem a tlaΦφtkem OK
sleep(ms: integer)
pozastavφ provßd∞nφ skriptu na zadan² poΦet milisekund

pspadVersion
(): string
vracφ verzi PSpadu
moduleExists(name: string):boolean
vracφ True, pokud modul existuje
moduleVersion(name: string):string
vracφ verzi modulu, pokud modul neexistuje, vracφ prßzdn² °et∞zec
moduleFileName(name: string):string
vracφ jmΘno modulu, pokud modul neexistuje, vracφ prßzdn² °et∞zec
modulePath():string
vracφ cestu k modulu vΦetn∞ poslednφho lomφtka
closeEditorByTitle(file_name: string): boolean
zav°e editor podle jmΘna souboru
closeEditorByIndex(index: integer): boolean
zav°e editor podle indexu
closeAllEditors
zav°e vÜechny editory

newEditor(): object
vytvo°φ nov² objekt pro ovlßdßnφ editoru

funkce objektu editor

assignEditorByName(file_name: string): boolean
p°i°adφ k objektu okno editoru podle jmΘna souboru
assignEditorByIndex(index: integer): boolean
p°i°adφ k objektu okno editoru podle indexu
assignActiveEditor(): boolean
p°i°adφ k objektu okno aktivnφho editoru
assignLog(): boolean
p°i°adφ k objektu LOG okno
newFile([file_name: string]): boolean
vytvo°φ novΘ okno v PSPadu a p°i°adφ je k objektu
openFile(file_name: string): boolean
otev°e soubor
saveFile(): boolean
ulo₧φ soubor
saveFileAs(file_name: string): boolean
ulo₧φ soubor jako
reloadFile(): boolean
provede znovunaΦtenφ souboru
closeFile(): boolean
zav°e soubor
printFile(print_dialog: boolean)
vytiskne soubor
activate
p°esune vybran² editor do pop°edφ
text(string):string
vrßtφ nebo nahradφ cel² text v editoru
selText(string): string
vrßtφ nebo nahradφ oznaΦen² text v editoru
lineText(string): string
vrßtφ nebo nahradφ text aktivnφho °ßdku
linesCount(): integer
vrßtφ poΦet °ßdk∙ v editoru
appendText(string): boolean
p°idß text na konec editoru
fileName(string): string
vrßtφ/nastavφ jmΘno souboru editoru
command(editor_command: string): boolean
spustφ p°φkaz editoru ()
setCaretPos(x: integer; y: integer): boolean
nastavφ pozici sloupce a °ßdku kurzoru. Hodnota -1 nem∞nφ pozici
caretX(integer): integer
vrßtφ/nastavφ kurzor na dan² sloupec
caretY(integer): integer
vrßtφ/nastavφ kurzor na dan² °ßdek

vb script - p°φklad

' vytvo°φ novΘ okno a zkopφruje cel² text z prvnφho okna
' ulo₧φ novΘ okno do souboru C:\SAMPLE.TXT
const module_name  = "sample"         'toto jmΘno musφ b²t unikßtnφ
const module_desc  = "Sample script"  'popis modulu
const module_ver   = "0.001a"         'verze modulu

sub Main                              'hlavni procedura
  
dim obj1, obj2, s                   'definice prom∞nn²ch  pspadVersion
  msgbox 
"PSPad version : " & pspadVersion()
  msgbox 
"Module version: " & moduleVersion("sample")
  set obj1 = getNewEditor()           'vytvo°φme nov² objekt editoru
  
set obj2 = getNewEditor()           'vytvo°φme nov² objekt editoru
  
obj2.assignEditorByIndex(0)         'p°i°adφme okno v PSPadu s indexem 0
  
obj1.NewFile()                      'otev°eme novΘ okno v PSpadu
  
s = obj2.getText                    'naΦteme cel² obsah 1.okna
  
obj1.settext(s)                     'vlo₧φme text do novΘho okna
  ' postup, jak p°istupovat k jednotliv²m °ßdk∙m
  
dim item
  for each item in obj1
    MsgBox 
item
  next
  
obj1.saveFileAs("C:\sample.txt"
)     'ulo₧φme do souboru
  
obj1.closeFile                       'zav°eme okno v PSPadu
end sub

sub 
Demo1
  msgbox 
"You run Demo1 from sample script"
end sub

sub 
Demo2
  msgbox 
"You run Demo2 from sample script"
end sub

' vytiskne vÜechna otev°enß okna, p°ed prvnφm oknem zobrazφ dialog na nastavenφ tiskßrny
sub PrintAll
  
set obj = NewEditor()
  
for i = 0 to editorsCount - 1
      obj.assignEditorByIndex(i)
      
if i = 0 then
         
obj.printFile(True)
      
else    
         
obj.printFile(False)
      
end if
  
next  
end sub

' jmΘno INIT je povinnΘ. tato funkce je volßna automaticky p°i inicializaci skriptu.
' pou₧φvß se hlavn∞ pro vytvß°enφ polo₧ek v menu
sub Init
  addMenuItem "Main from Sample"
"""Main"
  
addMenuItem "Print all files","""PrintAll", "Shift+Ctrl+P"
  
addMenuItem "Demo1 from Sample","Sample - submenu""Demo1" 
  
addMenuItem "Demo2 from Sample","Sample - submenu""Demo2" 
end sub